﻿/*----------------------------------------------------------------
// Copyright (C) 2011 
// 版权所有。 
//
// 文件名：ParseThread.cs
// 文件功能描述：
//
// 
// 创建标识：kenter 2011-10-19
// EMAIL:kenter1643@163.com
//
// 修改标识：
// 修改描述：
//
// 修改标识：
// 修改描述：
//----------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.Concurrent;
using System.Threading;
using WeiBOAPI.Sina;
using NLog;

namespace WeiBOAPI.Threads
{
    public class ParseThread
        : AbstractThread
    {
        private static Logger logger = LogManager.GetCurrentClassLogger(); 
        public ConcurrentQueue<ParseArg> _parseQueue = new ConcurrentQueue<ParseArg>();
        public ManualResetEvent _mEvent = new ManualResetEvent(false);

        public ParseThread()
        {

        }

        public override void Run()
        {
            _mEvent.WaitOne();

            ParseArg parseArg;
            while (_parseQueue.TryDequeue(out parseArg))
            {
                Global.Instance._g_SinaService.DoReturn(parseArg.ApiType, parseArg.ResultTxt);
            }

            _mEvent.Reset();
        }

        public override void ExStop(bool shutDown)
        {
            _mEvent.Set();
        }
    }
}
